package cube.utils;

import java.util.HashMap;
import java.util.Map;

import cube.data.util.DataUtil;

/**
 * 输入参数
 * 
 * @author abiao
 */
public class InputArgs {

    /**
     * 参数列表
     */
    private Map<String, String> argMap = new HashMap<String, String>();

    /**
     * 帮助信息
     */
    private String helpInfo;

    /**
     * 输入参数
     */
    public InputArgs(String[] args, String helpInfo) {
        this.helpInfo = helpInfo;
        initArgs(args);
    }

    /**
     * 初始化参数
     */
    private void initArgs(String[] args) {
        if (args.length == 0) {
            showHelp();
        }
        try {
            for (int i = 0; i < args.length - 1; i += 2) {
                if (DataUtil.isEven(i)) {
                    argMap.put(args[i], args[i + 1]);
                }
            }
        } catch (Exception e) {
            showHelp();
        }
    }

    /**
     * 获取String参数值
     */
    public String get(String name) {
        if (!argMap.containsKey(name)) {
            return null;
        }
        return argMap.get(name).toString();
    }

    /**
     * 获取整型参数值
     */
    public int getInt(String name) {
        if (name == null) {
            return 0;
        }
        return DataUtil.toInt(get(name));
    }

    /**
     * 显示帮助信息并退出
     */
    public void showHelp() {
        System.out.println(helpInfo);
        System.exit(0);
    }
}
